# 练习创建集合
# 集合类似于数据库中的"表"，需先定义字段（Field）和集合模式（Schema）。

# 导入pymilvus 相关模块：集合模式，字段模式，数据类型，集合，连接
from pymilvus import CollectionSchema, FieldSchema, DataType, Collection, connections

# 连接到Milvus服务器，使用默认连接别名，连接到本地主机的19530端口，数据库名为test
connections.connect("default", host="localhost", port="19530", db_name="test")

# 定义集合的字段结构，包含主键ID字段和向量字段
fields = [
    # 定义主键字段：64位整数类型，自动生成ID
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
    # 定义向量字段：128维浮点向量
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128)
]

# 创建集合模式对象
schema = CollectionSchema(fields, description="example")

# 检查集合是否存在，不存在则创建
collection_name = "example"
try:
    # 尝试获取已存在的集合
    collection = Collection(collection_name)
    print(f"集合-{collection.name}已存在")
except Exception:
    # 集合不存在，创建新集合
    collection = Collection(collection_name, schema)
    print(f"集合-{collection.name}创建成功")



